package Week5;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class Day25 {
}

//牛客:BC145 笨小猴
class Main1
{
    public static boolean isprim(int n) // 判断 n 是否是质数
    {
        if(n < 2) return false;
        for(int i = 2; i <= Math.sqrt(n); i++)
        {
            if(n % i == 0) return false;
        }
        return true;
    }
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        char[] s = in.next().toCharArray();
        int[] hash = new int[26];
        for(int i = 0; i < s.length; i++)
        {
            hash[s[i] - 'a']++;
        }
        int minn = 1000, maxn = 0;
        for(int i = 0; i < 26; i++)
        {
            if(hash[i] != 0)
            {
                minn = Math.min(minn, hash[i]);
                maxn = Math.max(maxn, hash[i]);
            }
        }
        if(isprim(maxn - minn))
        {
            System.out.println("Lucky Word");
            System.out.println(maxn - minn);
        }
        else
        {
            System.out.println("No Answer");
            System.out.println(0);
        }
    }
}

//牛客:NC383 主持人调度（一）
class Solution1 {
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     *
     * @param schedule int整型二维数组
     * @return bool布尔型
     */
    public boolean hostschedule (ArrayList<ArrayList<Integer>> sc) {
        // write code here
        int m = sc.size() , n = sc.get(0).size();
        int[][] schedule = new int[m][n];
        //将所有元素放入二维数组中
        for(int i = 0; i < m; i++){
            for(int j = 0; j < n; j++){
                schedule[i][j] = sc.get(i).get(j);
            }
        }
        //按第一个元素进行排序
        Arrays.sort(schedule , (v1 , v2) -> {
            return v1[0] - v2[0];
        });

        for(int i = 1; i < m; i++){
            //如果此时位置的第一个元素，比前一个位置的最后一个元素小，就无法参加所有的活动
            if(schedule[i][0] < schedule[i - 1][1]){
                return false;
            }
        }
        return true;
    }
}

//牛客:DP45 分割等和子集
class Main2 {
    public static int N = 510, M = 510 * 110 / 2;
    public static int n;
    public static int[] arr = new int[N];
    //创建一个dp表，表示前i个元素是否能够凑成j
    public static boolean[][] dp = new boolean[N][M];
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        n = in.nextInt();
        int sum = 0;
        for (int i = 1; i <= n; i++) {
            arr[i] = in.nextInt();
            sum += arr[i];
        }

        //如果总数的一半不能被整除就代表无法让取出的数和剩余的数相同
        if(sum % 2 == 1){
            System.out.println(false);
        }else{
            sum /= 2;
            dp[0][0] = true;
            for(int i = 1; i <= n; i++){
                for(int j = 0; j <= sum; j++){
                    dp[i][j] = dp[i - 1][j];
                    if(j >= arr[i]){
                        dp[i][j] = dp[i][j] || dp[i - 1][j - arr[i]];
                    }
                }
            }
            System.out.println(dp[n][sum]);
        }
    }
}
